import { reqDetailList,reqaddToCart } from '@/api';
const state = {
     //仓库中的detailList有几种状态:
     //第一种状态：起始数据是一个空对象
     //第二种状态：派发action，向服务器发请求，服务器把数据返回给你【真实的数据】，将空对象替换
     detailList:{}
};
const mutations = {
    GETDETAILLIST: (state, detailList) => {
         state.detailList = detailList;
    }
}
const actions = {
    //获取详情的数据
    async getDetailList({ commit }, skuId) {
        
        let result = await reqDetailList(skuId);
       
        if (result.code == 200) {
            commit("GETDETAILLIST", result.data);
        }
    },
    async addShopCart({commit},{skuId,skuNum}){
               let result = await reqaddToCart(skuId,skuNum)
               if(result.code==200){
                   return 'ok'
               }else{
                return Promise.reject(new Error('faile'));
               }
    }
};
//getters:计算属性。在项目当中为简化数据而生
const getters = {
    categoryView(state){
        //服务器数据没回来之前state.detailList是空对象
        // 空对象.categoryView是undefand 给detail 就崩了
        // 所以加一个||{} state.detailList 没有数据为false 走空对象 空对象传给detail 可以没问题
        return state.detailList.categoryView||{}
    },
    //将产品的属性简化
    spuSaleAttrList(state){
        return state.detailList.spuSaleAttrList
    },
    //产品详情的数据简化
    skuInfo(state){
        return state.detailList.skuInfo||{}
    }
    }
export default {
    state,
    mutations,
    actions,
    getters
}